//
//  Stack.h
//  Stack
//
//  Created by Xavier on 2023/10/16.
//

#ifndef Stack_h
#define Stack_h

#include <stdio.h>
#include <stdlib.h>

#endif /* Stack_h */

// 支持动态增长的栈
typedef int STDataType;
typedef struct Stack
{
 STDataType* arr;
 int top; //栈顶
 int capacity; //容量
}Stack;

// 初始化栈
void StackInit(Stack* ps);
// 入栈
void StackPush(Stack* ps, STDataType data);
// 出栈
void StackPop(Stack* ps);
// 获取栈顶元素
STDataType StackTop(Stack* ps);
// 获取栈中有效元素个数
int StackSize(Stack* ps);
// 检测栈是否为空，如果为空返回非零结果，如果不为空返回0
int StackEmpty(Stack* ps);
// 销毁栈
void StackDestroy(Stack* ps);
//打印栈
void StackPrint(Stack* ps);
//进制转换 十进制转八进制
void StackConvertDecimalToOctal(Stack* ps, int val);
